package reflect;

import java.util.Scanner;

/**
 * 使用反射机制实例化对象
 */
public class ReflectDemo2 {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
        Person p = new Person();
        System.out.println(p);
        /*
            实例化对象可以:
            1:使用类对象的newInstance方法实例化,前提是该类必须有无参构造器
            2:通过类对象获取构造器,然后通过构造器对象实例化对象
         */

        //获取类对象
//        Class cls = Class.forName("reflect.Person");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个类名:");
        String className = scanner.nextLine();
        /*
            java.lang.String
            reflect.Person
            java.util.HashSet
            java.util.Date(日期类,默认表示当前系统时间)
         */
        Class cls = Class.forName(className);

        //通过类对象的newInstance()方法实例化
//        Person p1 = (Person)cls.newInstance();
//        System.out.println(p1);

        Object o = cls.newInstance();
        System.out.println(o);

    }
}






